package com.drug.wms.domain;

import com.drug.common.annotation.Dict;
import com.drug.common.annotation.Excel;
import com.drug.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 商品基本信息对象 bus_goods_base_info
 *
 * @author ruoyi
 * @date 2021-11-09
 */
public class BusGoodsBaseInfoAndSku extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private String id;

    /** 商品编号 */
    @Excel(name = "商品编号")
    private String goodsNo;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String goodsName;

    /** 条形码 */
    @Excel(name = "条形码")
    private String barcode;

    /** 通用名 */
    @Excel(name = "通用名")
    private String commonName;

    /** 规格 */
    @Excel(name = "规格")
    private String norms;

    /** 批准文号 */
    @Excel(name = "批准文号")
    private String approvalNumber;

    /** 批准文号有效期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "批准文号有效期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approvalNumberValidity;

    /** 基本单位编号 */
    @Excel(name = "基本单位编号")
    @Dict(dictTable = "bus_unit_conf",dicCode = "id",dicText = "unit_name")
    private String unit;

    /** 装箱规格 */
    @Excel(name = "装箱规格")
    private Long cartonSize;

    /** 商品产地 */
    @Excel(name = "商品产地")
    private String originPlace;

    /** 近效期天数 */
    @Excel(name = "近效期天数")
    private Long validityPeriodDays;

    /** 生产厂商编号 */
    @Excel(name = "生产厂商编号")
    @Dict(dictTable = "bus_manufacturer_info",dicCode = "id",dicText = "name")
    private String manufacturerNo;

    /** 生产厂商名称 */
    @Excel(name = "生产厂商名称")
    private String manufacturerName;

    /** 商品类别编号 */
    @Excel(name = "商品类别编号")
    @Dict(dictTable = "bus_goods_category_info",dicCode = "id",dicText = "category_name")
    private String commodityCategoriesNo;

    /** 养护方式编码 */
    @Excel(name = "养护方式编码")
    @Dict(dicCode = "maintenance_mode")
    private String maintenanceModeCode;

    /** 储藏条件编码 */
    @Excel(name = "储藏条件编码")
    @Dict(dicCode = "storage_conditions")
    private String storageConditionsCode;

    /** 国批价 */
    @Excel(name = "国批价")
    private BigDecimal nationalWholesalePrice;

    /** 国零价 */
    @Excel(name = "国零价")
    private BigDecimal nationalRetailPrice;
    /**
     * 调货价
     */
    private BigDecimal transferPrice;

    /** 商品税率 */
    @Excel(name = "商品税率")
    private BigDecimal commodityTax;

    /** 数据状态 */
    @Excel(name = "数据状态")
    private String validityCode;

    /** 部门ID */
    @Excel(name = "部门ID")
    private Long deptId;

    private String batchNo;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date productionDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expireDate;
    /**
     * 库存
     */
    private BigDecimal amount;

    public BigDecimal getTransferPrice() {
        return transferPrice;
    }

    public void setTransferPrice(BigDecimal transferPrice) {
        this.transferPrice = transferPrice;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public String getBatchNo() {
        return batchNo;
    }

    public void setBatchNo(String batchNo) {
        this.batchNo = batchNo;
    }

    public Date getProductionDate() {
        return productionDate;
    }

    public void setProductionDate(Date productionDate) {
        this.productionDate = productionDate;
    }

    public Date getExpireDate() {
        return expireDate;
    }

    public void setExpireDate(Date expireDate) {
        this.expireDate = expireDate;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setGoodsNo(String goodsNo)
    {
        this.goodsNo = goodsNo;
    }

    public String getGoodsNo()
    {
        return goodsNo;
    }
    public void setGoodsName(String goodsName)
    {
        this.goodsName = goodsName;
    }

    public String getGoodsName()
    {
        return goodsName;
    }

    public String getBarcode() {
        return barcode;
    }

    public void setBarcode(String barcode) {
        this.barcode = barcode;
    }

    public void setCommonName(String commonName)
    {
        this.commonName = commonName;
    }

    public String getCommonName()
    {
        return commonName;
    }
    public void setNorms(String norms)
    {
        this.norms = norms;
    }

    public String getNorms()
    {
        return norms;
    }
    public void setApprovalNumber(String approvalNumber)
    {
        this.approvalNumber = approvalNumber;
    }

    public String getApprovalNumber()
    {
        return approvalNumber;
    }
    public void setApprovalNumberValidity(Date approvalNumberValidity)
    {
        this.approvalNumberValidity = approvalNumberValidity;
    }

    public Date getApprovalNumberValidity()
    {
        return approvalNumberValidity;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public void setCartonSize(Long cartonSize)
    {
        this.cartonSize = cartonSize;
    }

    public Long getCartonSize()
    {
        return cartonSize;
    }
    public void setOriginPlace(String originPlace)
    {
        this.originPlace = originPlace;
    }

    public String getOriginPlace()
    {
        return originPlace;
    }
    public void setValidityPeriodDays(Long validityPeriodDays)
    {
        this.validityPeriodDays = validityPeriodDays;
    }

    public Long getValidityPeriodDays()
    {
        return validityPeriodDays;
    }
    public void setManufacturerNo(String manufacturerNo)
    {
        this.manufacturerNo = manufacturerNo;
    }

    public String getManufacturerNo()
    {
        return manufacturerNo;
    }
    public void setManufacturerName(String manufacturerName)
    {
        this.manufacturerName = manufacturerName;
    }

    public String getManufacturerName()
    {
        return manufacturerName;
    }
    public void setCommodityCategoriesNo(String commodityCategoriesNo)
    {
        this.commodityCategoriesNo = commodityCategoriesNo;
    }

    public String getCommodityCategoriesNo()
    {
        return commodityCategoriesNo;
    }
    public void setMaintenanceModeCode(String maintenanceModeCode)
    {
        this.maintenanceModeCode = maintenanceModeCode;
    }

    public String getMaintenanceModeCode()
    {
        return maintenanceModeCode;
    }
    public void setStorageConditionsCode(String storageConditionsCode)
    {
        this.storageConditionsCode = storageConditionsCode;
    }

    public String getStorageConditionsCode()
    {
        return storageConditionsCode;
    }
    public void setNationalWholesalePrice(BigDecimal nationalWholesalePrice)
    {
        this.nationalWholesalePrice = nationalWholesalePrice;
    }

    public BigDecimal getNationalWholesalePrice()
    {
        return nationalWholesalePrice;
    }
    public void setNationalRetailPrice(BigDecimal nationalRetailPrice)
    {
        this.nationalRetailPrice = nationalRetailPrice;
    }

    public BigDecimal getNationalRetailPrice()
    {
        return nationalRetailPrice;
    }
    public void setCommodityTax(BigDecimal commodityTax)
    {
        this.commodityTax = commodityTax;
    }

    public BigDecimal getCommodityTax()
    {
        return commodityTax;
    }
    public void setValidityCode(String validityCode)
    {
        this.validityCode = validityCode;
    }

    public String getValidityCode()
    {
        return validityCode;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("goodsNo", getGoodsNo())
                .append("goodsName", getGoodsName())
                .append("barcode", getBarcode())
                .append("commonName", getCommonName())
                .append("norms", getNorms())
                .append("approvalNumber", getApprovalNumber())
                .append("approvalNumberValidity", getApprovalNumberValidity())
                .append("basicUnitNo", getUnit())
                .append("cartonSize", getCartonSize())
                .append("originPlace", getOriginPlace())
                .append("validityPeriodDays", getValidityPeriodDays())
                .append("manufacturerNo", getManufacturerNo())
                .append("manufacturerName", getManufacturerName())
                .append("commodityCategoriesNo", getCommodityCategoriesNo())
                .append("maintenanceModeCode", getMaintenanceModeCode())
                .append("storageConditionsCode", getStorageConditionsCode())
                .append("nationalWholesalePrice", getNationalWholesalePrice())
                .append("nationalRetailPrice", getNationalRetailPrice())
                .append("commodityTax", getCommodityTax())
                .append("remark", getRemark())
                .append("validityCode", getValidityCode())
                .append("deptId", getDeptId())
                .append("createTime", getCreateTime())
                .append("createBy", getCreateBy())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
